package com.zkt.recommend.common.entity;

import com.zkt.recommend.common.enums.ResultCodeEnum;
import lombok.Data;

/**
 * @author 赵开泰
 * @program jc-club
 * @date 2024/9/30
 * @description 封装返回结果
 **/

@Data
public class Result<T> {
	
	private Boolean success;
	
	private Integer code;
	
	private String message;
	
	private T data;
	
	public static Result ok() {
		Result result = new Result();
		result.setSuccess(true);
		result.setCode(ResultCodeEnum.SUCCESS.getCode());
		result.setMessage(ResultCodeEnum.SUCCESS.getDesc());
		return result;
	}
	
	public static <T> Result ok(T data) {
		Result result = new Result();
		result.setSuccess(true);
		result.setCode(ResultCodeEnum.SUCCESS.getCode());
		result.setMessage(ResultCodeEnum.SUCCESS.getDesc());
		result.setData(data);
		return result;
	}
	
	public static Result fail() {
		Result result = new Result();
		result.setSuccess(false);
		result.setCode(ResultCodeEnum.FAIL.getCode());
		result.setMessage(ResultCodeEnum.FAIL.getDesc());
		return result;
	}
	
	public static <T> Result fail(T data) {
		Result result = new Result();
		result.setSuccess(false);
		result.setCode(ResultCodeEnum.FAIL.getCode());
		result.setMessage(ResultCodeEnum.FAIL.getDesc());
		result.setData(data);
		return result;
	}
	
}